const app = getApp<IAppOption>()
import { config } from '../../utils/config';
Component({
    data: {
        patients: [], // 初始化为空数组
        menus: app.globalData.studentMenus || []
    },
    lifetimes: {
        // 页面加载时执行
        attached() {
            this.fetchPatients();
        }
    },
    methods: {
        // 检查登录状态
        checkLoginStatus() {
            const userInfo = wx.getStorageSync('userInfo')
            console.log(userInfo)
            if (!userInfo || !userInfo.access) {
                wx.redirectTo({ url: '/pages/login/login' })
                return false;
            }
            return true;
        },

        // 从API获取病人列表
        fetchPatients() {
            // 检查登录状态
            if (!this.checkLoginStatus()) return;

            // 显示加载提示
            wx.showLoading({
                title: '加载中...',
                mask: true
            })

            const userInfo = wx.getStorageSync('userInfo')

            // 调用API
            wx.request({
                url: `${config.baseUrl}/api/v1/get_ai_patients/`,
                method: 'GET',
                header: {
                    'Authorization': `Bearer ${userInfo.access}`, // 确保token格式正确
                    'Content-Type': 'application/json'
                },
                success: (res) => {
                    wx.hideLoading()
                    
                    // 处理不同的响应状态
                    if (res.statusCode === 401) {
                        // token无效或过期，重新登录
                        wx.removeStorageSync('userInfo');
                        wx.showToast({ title: '登录已过期，请重新登录', icon: 'none' });
                        setTimeout(() => {
                            wx.redirectTo({ url: '/pages/login/login' });
                        }, 1500);
                        return;
                    }
                    
                    // 假设API返回格式为 { code: 200, data: [] }
                    console.log(res.data)
                    console.log(res.data.data)
                    if (res.data && res.data.code === 200 && res.data.data) {
                        this.setData({
                            patients: res.data.data
                        })
                    } else {
                        wx.showToast({
                            title: '获取数据失败',
                            icon: 'none'
                        })
                    }
                },
                fail: () => {
                    wx.hideLoading()
                    wx.showToast({
                        title: '网络请求失败',
                        icon: 'none'
                    })
                }
            })
        },
        selectPatient(e: any) {
            const patient = this.data.patients[e.currentTarget.dataset.index]
            wx.navigateTo({
                url: `/pages/patient-detail/patient-detail?patient_id=${patient.id}`
            })
        }
    }
})